﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace Cotizav.AccesoDatos
{
    public class CaracteristicaDAO
    {

        public int Registrar(Util.ContextoDB ctx, Entidades.Equipo newEquipo, Entidades.Caracteristica newCaracteristica)
        {
            SqlCommand cmd = new SqlCommand("USP_CARACTERISTICA_INSERT", ctx.GetConexion(), ctx.GetTx());
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@ID", 0).Direction = System.Data.ParameterDirection.Output;
            cmd.Parameters.AddWithValue("@IDEQUIPO", newEquipo.IdEquipo);
            cmd.Parameters.AddWithValue("@NOMBRECARACTERISTICA", newCaracteristica.NombreCaracteristica ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@DESCRIPCION", newCaracteristica.Descripcion ?? (object)DBNull.Value);
            cmd.Parameters.AddWithValue("@ACTIVO", newCaracteristica.Activo);

            int result = cmd.ExecuteNonQuery();

            int id = Int32.Parse(cmd.Parameters["@ID"].Value.ToString());
            newCaracteristica.IdCaracteristica = id;

            return result;
        }

        public List<Entidades.Caracteristica> Listar(Util.ContextoDB ctx)
        {
            SqlCommand cmd = new SqlCommand("select * from CARACTERISTICA", ctx.GetConexion(), ctx.GetTx());
            DataTable dtCaracteristica = new DataTable();
            dtCaracteristica.Load(cmd.ExecuteReader());

            List<Entidades.Caracteristica> lista = new List<Entidades.Caracteristica>();

            foreach (DataRow fila in dtCaracteristica.Rows)
            {
                Entidades.Caracteristica c = new Entidades.Caracteristica();

                c.IdCaracteristica = Int32.Parse(fila["ID"].ToString());
                c.IdEquipo = !(fila["IDEQUIPO"] is DBNull) ? Int32.Parse(fila["IDEQUIPO"].ToString()) : new Nullable<int>();
                c.NombreCaracteristica = fila["NOMBRECARACTERISTICA"].ToString();
                c.Descripcion = fila["DESCRIPCION"].ToString();
                c.Activo = Int32.Parse(fila["ACTIVO"].ToString());
                c.Statusflag = fila["STATUSFLAG"].ToString();

                lista.Add(c);
            }

            return lista;
        }
    }
}
